perm filename PLTCMD.F4[MSS,LCS]3 blob sn#099880 filedate 1974-04-27 generic text, type T, neo UTF8
00100	C**** PLTCMD, FILLER, NNN, UNPACK, ROFF ********
00200		SUBROUTINE PLTCMD
00300	CC	IMPLICIT INTEGER(A-Q,S-Z)
00400		COMMON/FRMT/F78F(1),FA1(1),FA5(1),ASK
00500		DIMENSION NMS(8),RMOV1(8),RMOV2(8)
00600		COMMON /DL/X22,SAVER,NAME /ALF/INP(3),ML
00700		COMMON RJB,JE,CENTR,JB,RJQ(20),JQ(20)
00800		EQUIVALENCE (RJE,RJQ(3)),(RJF,RJQ(4)),(RJG,RJQ(5)),(RJD,RJQ(2))
00900		1,(RJC,RJQ(1)),(I2,INP(2)),(RJH,RJQ(6)),(I3,INP(3))
01000		F78F(1)='(78F)'
01100		FA5(1)='(A5) '
01200		FA1(1)='(A1) '
01300	
01400		IF(I2.NE.'X')GO TO 1
01500	CC	ML=' '
01600		I2=0
01700		RXC=0
01800		RMOV1(1)='Y'
01900		NAME=0
02000	14	KA=0
02100	3	KA=KA+1
02200	CC	IF(ML.EQ.' ')GO TO 15
02300		IF(ML.EQ.0)GO TO 15
02400		K=K-2
02500		ML=ML-1
02600		IF(ML.EQ.0)GO TO 10
02700		GO TO 31
02800	15	TYPE 2,KA
02900		ACCEPT 11,K,ML
03000	C  TYPE LAST NAME, NUMBER  FOR A SERIES
03100	50	IF(K.EQ.' ')GO TO 10
03200		IF(K.EQ.'99')GO TO 140
03300	C  99=BACKUP
03400	31	IF(LOOKD(K))GO TO 56
03500	C JUMP IF FILE FOUND
03600		TYPE 55
03700		GO TO 15
03800	55	FORMAT(' FILE NOT FOUND'/)
03900	11	FORMAT(A5,I)
04000	56	NMS(KA)=K
04100	CC	IF(ML.EQ.' ')GO TO 5
04200		IF(ML.EQ.0)GO TO 5
04300		RJH='Y'
04400		GO TO 21
04500	5	TYPE 8
04600		ACCEPT FA5,RJH
04700		IF(RJH.EQ.'99')GO TO 15
04800		IF(RJH.NE.'Y')RJH=0
04900		IF(RJH.EQ.0)REREAD F78F,RJH
05000	C  MOVE NUMBER CAN BE TYPED FOR 'MOVE UP'
05100	21	RMOV1(KA+1)=RJH
05200		RMOV2(KA)=RJH
05300		GO TO 3
05400	140	KA=KA-1
05500		GO TO 15
05600	
05700	10	KB=KA-1
05800		IF(I3.NE.'G')GO TO 22
05900		RSIZ=1
06000		GO TO 222
06100	22	TYPE 9
06200		ACCEPT F78F,RSIZ
06300		IF(RSIZ.EQ.99.OR.RSIZ.EQ.0)GO TO 5
06400	222	KA=0
06500	
06600	1	IF(NAME.NE.0)GO TO 12
06700		IF(KA.EQ.KB)CALL EXIT
06800		NAME=NMS(KA+1)
06900		TYPE 111,NAME
07000		RETURN
07100	12	KA=KA+1
07200		NAME=0
07300		RJD=1
07400		IF(INP(3).EQ.'C')RJD=0
07500	C  'PXC' = CALCOMP OUTPUT
07600		RJH=0
07700		RJB=RSIZ
07800		RJC=RSIZ
07900		RJG=0
08000		RJE=1
08100		RJF=1
08200		IF(RMOV2(KA).NE.'Y')RJG=RMOV2(KA)
08300		IF(RMOV1(KA).NE.0)RJE=0
08400		IF(RMOV2(KA).NE.0.OR.RJG.NE.0)RJF=0
08500	2	FORMAT(' TYPE FILE NAME',I2,1X$)
08600	8	FORMAT(' MOVE UP AT END? ',$)
08700	9	FORMAT(' SIZE FACTOR? ',$)
08800	111	FORMAT(1XA5/)
08900		END
09000		SUBROUTINE OLDFIL(IFILL,QJB,QCENT,BX,BY)
09100		DIMENSION IFILL(1)
09200		COMMON /DL/IXRX,SAVER,NAME
09300		COMMON /SIZ/RSZ,JCEN,KCEN
09400		COMMON /FL/IC,N,NQ,RZ,XGP
09500		COMMON /STF/RSTFAC(8),RSTJC
09600		COMMON /PLTR/IPLT,RHT,DIS
09700		COMMON/DPY/IGO,RXGP,ITOP,IBOT
09800		PX=1
09900		IF(BX.EQ.0)BX=1
10000		IF(BY.EQ.0)BY=1
10100		IF(BX)PX=-1
10200		IXGP=XGP
10300		RSI=RSTJC*BY
10400	C  RI IS INVERSION FACTOR
10500		BZ=BY/BX
10600		RT=RSTJC*BX
10700	C  RS=HORIZ.    RT=VERT.
10800		JXGP=RXGP
10900		NX=2
11000	C  NX IS POINTER IN X ARRAY
11100		ID=IFILL(NX)
11200		IF(IPLT)GO TO 101
11300		RBZ=QJB*RSZ
11400		RXX=RSZ*RT
11500	C  WHAT ABOUT RXX???????? 
11600		RYX=QCENT*RSZ
11700		RXY=RSI*RSZ
11800		GO TO 100
11900	101	RXX=RT*DIS
12000		RXY=RSI*RHT
12100		RBZ=QJB*DIS
12200		RYX=QCENT*RHT
12300	100	RM=-1000
12400		IF(PX)RM=-RM
12500		I=NX+1
12600	103	CALL UNPACK(IA,IB,IFILL(I))
12700		IF(IA.NE.IFILL(I+1)/10000)GO TO 102
12800		I=I+1
12900		GO TO 103
13000	102	G=IA*RT+QJB
13100		H=IB*RSI+QCENT
13200		IF(IPLT)GO TO 200
13300		CALL LINES(G,H,3)
13400		GO TO 300
13500	200	IF(IXRX.EQ.0)GO TO 90
13600		M=ROFF(-H*RHT+RXGP)
13700		N=ROFF(G*DIS+XGP)
13800		GO TO 80
13900	90	M=ROFF(G*DIS)
14000		N=ROFF(H*RHT)
14100	80	CALL PLOT(M,N,3)
14200	300	NN=ID-1
14300	C  LAST OF ARRAY-1
14400		P=IA*RXX
14500		CALL UNPACK(IG,H,IFILL(I+1))
14600		RB=IG*RXX+PX
14700		J=1
14800	1	JJ=1
14900		IF(PX)GO TO 30
15000		IF(RM.GT.RB)GO TO 13
15100		GO TO 31
15200	30	IF(RM.LT.RB)GO TO 13
15300	31	IF(J)GO TO 2
15400	3	CALL NNN(NN,1,0,IFILL)
15500	C  FINDS BOTTOM POINTER
15600		GO TO 16	
15700	2	CALL NNN(I,0,1,IFILL)
15800	C  FINDS TOP POINTER(I)
15900	16	CALL UNPACK(JAX,JB,IFILL(N))
16000		CALL UNPACK(JG,JH,IFILL(N+1))
16100		CALL UNPACK(IQ,H,IFILL(NQ))
16200		RZ=RZ*RXX
16300	10	RDIS=JAX-JG
16400		IF(PX)GO TO 32
16500		IF(P.GT.RZ)P=RZ
16600		GO TO 33
16700	32	IF(P.LT.RZ)P=RZ
16800	C  REVERSES VERT.
16900	33	Q=IQ*RXX
17000		C=IC*RXY+RYX
17100		IF(RDIS.NE.0)GO TO 6
17200	C  FOR STRAIIGHT UP-DOWN LINES
17300		IF(NN-1.EQ.I)GO TO 13
17400		P=P-PX
17500		GO TO 5
17600	6	H=BZ*(JB-JH)/RDIS
17700	11	HH=(P-Q)*H+C
17800		PP=P+RBZ
17900		IH=ROFF(HH)
18000		IP=ROFF(PP)
18100	C  ROFF IS FOR ROUND-OFF ERRORS
18200		IF(IP.EQ.MP.AND.IH.EQ.MH)GO TO 180
18300		MP=IP
18400		MH=IH
18500	C  OMITS REPEATED POINTS
18600		IF(IPLT)GO TO 17
18700	CC	IF(RSZ.LE.0.8571)GO TO 34
18800	CC	IP=IP-JCEN
18900	CC	IH=IH-KCEN
19000	CC34	CALL AVECT(IP,IH)
19100		CALL LINES(PP/RSZ,HH/RSZ,2)
19200		GO TO 180
19300	17	IF(IXRX.EQ.0)GO TO 19
19400		K=IP
19500		IP=-IH+JXGP
19600	C NO RNDOFF OR DIS-RHT FACTORS HERE YET.
19700		IH=K+IXGP
19800	19	CALL PLOT(IP,IH,2)
19900	180	JJ=JJ-1
20000		IF(JJ)GO TO 12
20100		RM=P
20200		P=P+PX
20300		IF(PX)GO TO 35
20400		IF(P.LT.RZ)GO TO 11
20500		GO TO 5
20600	35	IF(P.GT.RZ)GO TO 11
20700	5	IF(J)GO TO 4
20800		NN=NN-1
20900		IF(I.GT.NN)GO TO 13
21000		GO TO 3
21100	4	I=I+1
21200		IF(I.GT.NN)GO TO 13
21300	402	CALL UNPACK(IA,IB,IFILL(I+1))
21400		RB=IA*RXX+PX
21500		GO TO 2
21600	12	J=-J
21700		GO TO 1
21800	13	NX=ID+1
21900		IF(ID.EQ.IFILL(1))GO TO 130
22000		ID=IFILL(NX)
22100		GO TO 100
22200	130	MP=1000
22300		MH=1000
22400		RETURN
22500		END
22600	
22700		SUBROUTINE NNN(J,L,K,IFILL)
22800		COMMON /FL/IC,N,NQ,RZ,XGP
22900		DIMENSION IFILL(1)
23000		CALL UNPACK(IZ,IC,IFILL(J+K))
23100		CALL UNPACK(N,IC,IFILL(J+L))
23200		N=J
23300	C  C IS THE CONSTANT
23400		NQ=N+L
23500		RZ=IZ
23600		RETURN
23700		END
23800	
23900		SUBROUTINE UNPACK(M,N,I)
24000		COMMON/LL/L
24100	C  L IS FOR VIS. OR INVIS. LINES.
24200		N=I
24300		L=2
24400		M=N/100000000
24500		IF(M.EQ.0)GO TO 2
24600		L=3
24700		N=N-100000000*M
24800	2	M=N/10000
24900	CC	N=N-M*10000
25000		N=MOD(N,10000)
25100		IF(M.GT.1000)M=1000-M
25200		IF(N.GT.1000)N=1000-N
25300		END
25400	
25410		FUNCTION ROFF(R)
25420		S=.5
25430		IF(R)S=-S
25440		ROFF=R+S
25450		END
25460	
25500		SUBROUTINE FILLMS(L,IDAT,RJB,CENTR,RJF,RJG)
25600		COMMON/DL/IXRX,SAVER,NAME
25700		DIMENSION X(200),Y(200),NX(200),IDAT(1)
25800		COMMON/PLTR/IPLT,RHT,DIS/LL/LL/STF/RR(8),RSTJC
25900		DATA MP/2/,MD/6/
26000	C MD=DISPLAY   MP=PLOTTER   MX=XGP
26100		DX=DIS
26200		RX=RHT
26300		D=RSTJC*RJF
26400		R=RSTJC*RJG
26500	1	KK=0
26600		DO 205 J=1,L
26700		CALL UNPACK(M,N,IDAT(J))
26800		KK=KK+1
26900		NX(KK)=0
27000		IF(LL.EQ.3)NX(KK)=3
27100		X(KK)=(RJB+D*M)*DIS
27200	205	Y(KK)=(CENTR+R*N)*RHT
27300		NX(1)=KK
27400		DIS=1.0
27500		RHT=DIS
27600		M=MD
27700		IF(IPLT)M=MP-IXRX
27800	2	CALL FILLER(X,Y,NX,M)
27900		DIS=DX
28000		RHT=RX
28100		END